// 该目录存放挂载到Vue.prototype上的对象
export default (Vue) => {
  // require.context是webpack的一个方法,可以获取文件的上下文
  const requireGlobal = require.context(
    // 其组件目录的相对路径
    './',
    // 是否进行深度遍历
    false,
    // 匹配基础组件文件名的正则表达式
    /[a-zA-Z]\w+\.js/
  )
  requireGlobal.keys().forEach(fileName => {
    if (fileName === './index.js') return
    // requireGlobal(fileName)获取对象配置
    const globalConfig = requireGlobal(fileName)
    // 获取组件的短横线式命名
    const componentName = fileName
      .split('/')
      .pop()
      .replace(/\.\w+$/, '')

    // 全局注册组件
    Vue.prototype[`$${componentName}`] = globalConfig.default || globalConfig
  })
  console.log('挂在完成')
}
